{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 理解导数\n",
    "\n",
    "你刚才看到了这三个陈述。\n",
    "\n",
    "> 1. **速度** 是**位置（或位移）**的瞬时变化率\n",
    "> 2. **速度** 是**位置（或位移）**的切线的斜率\n",
    "> 3. **速度** 是**位置（或位移）**的导数\n",
    "\n",
    "当你对什么是导数有一个直观的理解时，通过这个 notebook 中对导数的探索，你会发现它的另一个更正式的（数学）定义。\n",
    "\n",
    "## 进行下一步之前\n",
    "这个 notebook 比较长，因为确实需要仔细阅读，才能对你有所帮助。在进行下一步之前，请确保：\n",
    "\n",
    "1. 你**至少可以花30分钟**的时间停留在这里。\n",
    "2. 你有精力阅读一些数学和（偶尔）复杂的代码。\n",
    "\n",
    "\n",
    "-----\n",
    "\n",
    "## 导数的正式定义\n",
    "\n",
    " $f(t)$**在 t 处的导数**是函数$\\dot{f}(t)$（“f点t”），并被定义为\n",
    "\n",
    "$$\\dot{f}(t) = \\lim_{\\Delta t \\to 0} \\frac{f(t+\\Delta t) - f(t)}{\\Delta t}$$\n",
    "\n",
    "你应该这样读这个公式：\n",
    "\n",
    "*\"f点 t等于 f （ t加上德尔塔 t）减去 f(t) 的值，除以德尔塔 t ，德尔塔 t 趋近于0时的极限。\"*\n",
    "\n",
    "## 概要\n",
    "在这个notebook中，我们将通过一系列活动来解开这个定义，在最后的时候，我们将定义一个名为`approximate_derivative`的python函数。这个函数看起来与上面的数学公式非常相似。\n",
    "\n",
    "下面是整个过程的粗略概述：\n",
    "\n",
    "1. **离散运动与连续运动** - 快速浏览一下**离散运动**与**连续运动**之间的差异，再做一些在代码中定义连续函数的练习。\n",
    "\n",
    "2. **绘制连续函数曲线图** - 在这里，你将看到`plot_continuous_function`函数，它是一个将**另一个函数**作为输入的函数。\n",
    "\n",
    "3. **\"手动\"发现导数** - 在这里，你可以通过放大**位置与时间**关系图并查找斜率，*在特定的时间*找到某个对象的**速度**。\n",
    "\n",
    "4. **通过算法发现导数** - 在这里，你将使用一个函数来重现刚刚“手动”操作的步骤。\n",
    "\n",
    "5. **可选：找到完整的导数** - 在步骤3和4中，你实际上可以找到一个函数*在特定时间点*的导数。在这里你将看到如何一次性获取一个函数**所有**时间点的导数。请注意，代码在这里会变得有点奇怪。\n",
    "\n",
    "\n",
    "-----\n",
    "\n",
    "## 1 - 离散运动与连续运动\n",
    "\n",
    "我们在无人驾驶汽车中处理的数据对我们来说是离散的。也就是说，它只能在某些时间戳处会涉及我们所需的数据。例如，我们可能在时间戳`t=352.396`处获得位置测量值，并在时间戳`t=352.411`处获取下一个位置测量值。但是，这两次测量之间发生了什么？例如在`t=352.400` 时，车辆**没有位置数据**吗？\n",
    "\n",
    "当然不是！\n",
    "\n",
    "> 即使我们测量的位置数据是**离散的**，但我们知道车辆的实际运动是**连续的**。\n",
    "\n",
    "假设我在`t=0`、`x=0`时，以$2 m/s$的速度开始向前移动。在t = 1时，x将为2；在t = 4时，x将为8。我可以以1秒为间隔绘制我的位置图，如下所示："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "%matplotlib inline\n",
    "\n",
    "t = [0,1,2,3,4]\n",
    "x = [0,2,4,6,8]\n",
    "\n",
    "plt.scatter(t,x)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "以上图表是运动的**离散**图片。这张图来自两个Python**列表**...\n",
    "\n",
    "但是底层的**连续**运动呢？我们可以用这样的一个函数$f$ 来表示这个连续运动：\n",
    "\n",
    "$$f(t)=2t$$\n",
    "\n",
    "\n",
    "但我们如何在代码中表示呢？\n",
    "\n",
    "一个列表是不行的！我们需要定义一个函数（此处有惊喜）！"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "at t = 0 position is 0\n",
      "at t = 1 position is 2\n",
      "at t = 2 position is 4\n",
      "at t = 3 position is 6\n",
      "at t = 4 position is 8\n"
     ]
    }
   ],
   "source": [
    "def position(time):\n",
    "    return 2*time\n",
    "\n",
    "print(\"at t =\", 0, \"position is\", position(0))\n",
    "print(\"at t =\", 1, \"position is\", position(1))\n",
    "print(\"at t =\", 2, \"position is\", position(2))\n",
    "print(\"at t =\", 3, \"position is\", position(3))\n",
    "print(\"at t =\", 4, \"position is\", position(4))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这看起来是正确的，并且与我们上面的数据相匹配。此外，它还可用于获取车辆在“传感器测量值”之间的位置。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "at t = 2.2351 position is 4.4702\n"
     ]
    }
   ],
   "source": [
    "print(\"at t =\", 2.2351, \"position is\", position(2.2351))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "这个`position(time)` 函数是时间的连续函数。当你在导数的正式定义中看到 $f(t)$时，你应该已经想到这样的函数。\n",
    "\n",
    "-----\n",
    "\n",
    "## 2 - 绘制连续函数曲线图\n",
    "\n",
    "既然我们有了一个连续的函数，那么如何绘制它的曲线图呢？\n",
    "\n",
    "我们将使用`numpy`和一个名为`linspace`的函数来帮助我们。首先让我来演示如何绘制时间在0到4之间的位置函数的曲线图。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# Demonstration of continuous plotting\n",
    "\n",
    "import numpy as np\n",
    "\n",
    "t = np.linspace(0, 4)\n",
    "x = position(t)\n",
    "\n",
    "plt.plot(t, x)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "#### 练习 - 创建并绘制一个时间的连续函数曲线图\n",
    "**编写一个代表以下运动的函数`position_b(time)`：**\n",
    "\n",
    "$$f(t)=-4.9t^2 + 30t$$\n",
    "\n",
    "**然后绘制从t = 0到t = 6.12的函数曲线图**"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [],
   "source": [
    "# EXERCISE\n",
    "def position_b(time):\n",
    "    # todo\n",
    "    pass\n",
    "\n",
    "# don't forget to plot this function from t=0 to t=6.12  \n",
    "# Solution is below."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "#\n",
    "\n",
    "#\n",
    "\n",
    "#\n",
    "\n",
    "# Spoiler alert! Solution below!\n",
    "\n",
    "#\n",
    "\n",
    "#\n",
    "\n",
    "#"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def position_b(time):\n",
    "    return -4.9 * time ** 2 + 30 * time\n",
    "\n",
    "t = np.linspace(0, 6.12)\n",
    "z = position_b(t)\n",
    "\n",
    "plt.plot(t, z)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "**有趣的事实（也许）**\n",
    "\n",
    "我在绘图代码中使用变量`z`是有原因的。`z`通常用于表示距地面以上的距离，你刚才绘制的函数曲线图实际上代表以 $30 m/s$ 的初始速度向上抛起的球的高度。正如你所看到的，球在投掷被后约3秒达到了最大高度。\n",
    "\n",
    "### 2.1 - 概括我们的绘图代码\n",
    "我不想保留复制和粘贴绘图代码，所以我只想编写一个函数..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [],
   "source": [
    "def plot_continuous_function(function, t_min, t_max):\n",
    "    t = np.linspace(t_min, t_max)\n",
    "    x = function(t)\n",
    "    plt.plot(t,x)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_continuous_function(position_b, 0, 6.12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "看一看 `plot_continuous_function` 。\n",
    "\n",
    "注意到它有什么奇怪的地方吗？\n",
    "\n",
    "这个函数实际上*将另一个函数作为输入*。在Python中这是一个非常有效的事情，但我知道我第一次看到这样的代码时，我发现很难搞懂到底是怎么回事。\n",
    "\n",
    "稍后在这个 notebook 中，你会看到一个函数，它实际上会`return`另一个函数！\n",
    "\n",
    "现在，让我告诉你其他可以使用`plot_continuous_function`的方法。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "def constant_position_motion(time):\n",
    "    position = 20\n",
    "    return position + 0*time\n",
    "\n",
    "def constant_velocity_motion(time):\n",
    "    velocity = 10\n",
    "    return velocity * time\n",
    "\n",
    "def constant_acceleration_motion(time):\n",
    "    acceleration = 9.8\n",
    "    return acceleration / 2 * time ** 2\n",
    "    \n",
    "plot_continuous_function(constant_position_motion, 0, 20)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# position vs time \n",
    "# with constant VELOCITY motion\n",
    "\n",
    "plot_continuous_function(constant_velocity_motion, 0, 20)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYEAAAD8CAYAAACRkhiPAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xl8FeXZ//HPRdgh7GHfBAMIiAgRsD5a6oo+ttjWfYG64QJt7WNrtf11tX20drG2tVqKiCiouFXaYi1qrdrKkiCr7HsgJIGEECAJWa7fH2diz4MJZD2T5Hzfr9d5nTn33HPmypxz5srcc8/c5u6IiEh8ahZ2ACIiEh4lARGROKYkICISx5QERETimJKAiEgcUxIQEYljSgIiInFMSUBEJI4pCYiIxLHmYQdwMt26dfOBAweGHYaISKORlpa2392TqlK3wSeBgQMHkpqaGnYYIiKNhpntrGpdNQeJiMSxkyYBM+tnZv8ws/Vmts7Mvh6UdzGzxWa2OXjuHJSbmf3GzLaY2WozGxP1XlOD+pvNbGr9/VkiIlIVVTkSKAHudffTgAnAdDMbDtwPvO3uycDbwWuAS4Hk4DENeAIiSQP4ATAeGAf8oDxxiIhIOE6aBNw9w91XBNP5wHqgDzAZeCao9gxwRTA9GZjrEUuATmbWC7gEWOzuOe6eCywGJtXpXyMiItVSrXMCZjYQOBNYCvRw9wyIJAqge1CtD7A7arH0oKyy8orWM83MUs0sNTs7uzohiohINVQ5CZhZe+AV4B53P3SiqhWU+QnKP13oPtPdU9w9JSmpSr2cRESkBqqUBMysBZEEMM/dXw2KM4NmHoLnrKA8HegXtXhfYO8JykVEJCRV6R1kwFPAenf/VdSshUB5D5+pwOtR5VOCXkITgLyguehN4GIz6xycEL44KBMRkSjLtucw6/1txGL436pcLHYOcBOwxsxWBmXfAR4GFpjZrcAu4Kpg3iLgMmALcBS4GcDdc8zsQWB5UO/H7p5TJ3+FiEgTkXWokOnzV9CuZQLXjetPu1b1e03vSd/d3T+g4vZ8gAsqqO/A9EreazYwuzoBiojEi+LSMqbPX0F+YTHP3jqu3hMANILbRoiIxIuH39jA8h25/Pqa0Qzr2SEm69RtI0REGoC/rN7LUx9sZ+rZA7jizAp7z9cLJQERkZBtycrnvpdXM6Z/J77738Njum4lARGREB0uKuGOZ9No0yKBx28YQ8vmsd0t65yAiEhI3J1vv7ya7fuP8Nxt4+nVsU3MY9CRgIhISJ76YDt/XZPBfZOG8ZnB3UKJQUlARCQEH249wENvbOCSET2447xBocWhJCAiEmN7DxYwY/4KBnZtyy+uOoPIjRnCoSQgIhJDhcWl3PlcGkUlZfzhphQSW7cINR6dGBYRiRF35/uvr2V1eh4zbxrLqd3bhx2SjgRERGJl3tJdLEhN56vnn8rFI3qGHQ6gJCAiEhNpO3P40Z/XMXFoEvdcOCTscD6hJCAiUs+yDhVy53Mr6N2pDY9dcyYJzcI7EXw8nRMQEalHx0rKuGveCg4XlvDcrePp2DbcE8HHUxIQEakn7s4PFq4lbWcuv7v+TIb2TAw7pE9Rc5CISD15bukunl+2m7snDubyUb3DDqdCVRlecraZZZnZ2qiyF81sZfDYUT7imJkNNLOCqHlPRi0z1szWmNkWM/uNhXl1hIhIPVuy7QA/WriO84d1596Lh4YdTqWq0hw0B/gdMLe8wN2vKZ82s18CeVH1t7r76Are5wlgGrCEyBCUk4A3qh+yiEjDlp57lLvnraB/17b8+trRDepE8PFOeiTg7u8BFY4FHPw3fzXw/Inew8x6AR3c/cNg+Mm5wBXVD1dEpGErOFbKtLlpFJeU8ccpKXQI+Yrgk6ntOYFzgUx33xxVdoqZfWRm/zSzc4OyPkB6VJ30oKxCZjbNzFLNLDU7O7uWIYqIxIa7862XV7F+3yF+c92ZDE4K/4rgk6ltEriO/3sUkAH0d/czgf8B5ptZByoeqN4re1N3n+nuKe6ekpSUVMsQRURi44l/buUvqzO475JhfG5Y97DDqZIadxE1s+bAl4Cx5WXuXgQUBdNpZrYVGELkP/++UYv3BfbWdN0iIg3N2+sz+fmbG/n8Gb2587Ph3Rq6umpzJHAhsMHdP2nmMbMkM0sIpgcBycA2d88A8s1sQnAeYQrwei3WLSLSYGzcl8/Xnv+IEb078MiXR4V6a+jqqkoX0eeBD4GhZpZuZrcGs67l0yeEzwNWm9kq4GXgTncvP6l8FzAL2AJsRT2DRKQJyDlyjNvmLqdtq+b8cUoKbVomhB1StZy0Ocjdr6uk/CsVlL0CvFJJ/VRgZDXjExFpsI6VlHHXc2lkHirixWkTQhkjuLZ0xbCISA2U3xJi6fYcfn7lKM7s3znskGpESUBEpAbm/HsHzy/bzfTPDWby6Ep7vDd4SgIiItX03qZsHvzLx1w0vAf3XtRwbwlRFUoCIiLVsDX7MNPnr2BIj0R+fc1omjXgW0JUhZKAiEgV5R45xi1zltMyoRmzpqbQrlXjvxt/4/8LRERioKiklDueSyMjr5Dnb59A385tww6pTuhIQETkJNyd77y6lmVBT6CxAxpnT6CKKAmIiJzE79/dyisr0rnnwuRG3ROoIkoCIiInsGhNBj9/cyOTR/fm6xckhx1OnVMSEBGpxKrdB/nGiysZO6AzP2tk9wSqKiUBEZEK7DlYwG1zU0lKbMUfbhpL6xaN655AVaXeQSIix8kvLObWOcspPFbK/NvG0619q7BDqjdKAiIiUYpLy7h73gq2ZB3m6ZvPIrlHYtgh1SslARGRgLvzvT+t5f3N+3nky6M4N7npj2yocwIiIoHfv7uVF5bv5qvnn8rVZ/ULO5yYUBIQEQFeX7nnk66g/3PRkLDDiZmqjCw228yyzGxtVNkPzWyPma0MHpdFzXvAzLaY2UYzuySqfFJQtsXM7q/7P0VEpGaWbc/hWy+tZtwpXXjkyqbZFbQyVTkSmANMqqD8UXcfHTwWAZjZcCLDTo4Ilvm9mSUE4w4/DlwKDAeuC+qKiIRqa/Zhpj2bSt8ubZh501haNW+aXUErU5XhJd8zs4FVfL/JwAvuXgRsN7MtwLhg3hZ33wZgZi8EdT+udsQiInUkO7+Im59eToIZc74yjk5tW4YdUszV5pzADDNbHTQXld9NqQ+wO6pOelBWWbmISCiOFJVw6zPLycovZNbUFPp3bRp3Ba2umiaBJ4DBwGggA/hlUF5RQ5qfoLxCZjbNzFLNLDU7O7uGIYqIVKy4tIzp81ewdk8ej18/ptGOD1wXapQE3D3T3UvdvQz4I/9p8kkHovtV9QX2nqC8svef6e4p7p6SlNT0++mKSOy4O999bQ3vbszmJ1eczgWn9Qg7pFDVKAmYWa+ol18EynsOLQSuNbNWZnYKkAwsA5YDyWZ2ipm1JHLyeGHNwxYRqZlfv7WZBanpfO38U7l+fP+wwwndSU8Mm9nzwESgm5mlAz8AJprZaCJNOjuAOwDcfZ2ZLSBywrcEmO7upcH7zADeBBKA2e6+rs7/GhGRE3hh2S4ee3szV43tyzfi6FqAEzH3SpvmG4SUlBRPTU0NOwwRaeTe2ZDJ7XPT+K9TuzFragotEprutbJmlubuKVWp23S3gohI4KNduUyf9xHDe3Xg9zeMadIJoLq0JUSkSduSlc/Nc5bTvUMrZn/lLNq10n0zoykJiEiTlZFXwJSnltG8WTPm3jKOpMSmOy5ATSkJiEiTdPDoMaY8tYxDhSXMufksBnRtF3ZIDZKSgIg0OQXHSrn1mVR2HjjKzCljGdmnY9ghNVhqHBORJqW4tIwZ81ewYlcuv79+DJ8Z3C3skBo0HQmISJPh7jzw6hre3pDFg5NHcunpvU6+UJxTEhCRJsHdeeiNDbycls49FyZz44QBYYfUKCgJiEiT8Pt3tzLzvW1MPXsAX78gOexwGg0lARFp9J5dspOfv7mRL57Zhx98fkRcjQxWW0oCItKovb5yD99/fS0XntadR64cRbNmSgDVoSQgIo3WOxsyuXfBKsYN7MLvrtftIGpCW0xEGqVl23O467kVnNarA7OmptC6RXyNDVxXlAREpNFZuyePW+csp2/nNsy5+SwSW7cIO6RGS0lARBqVTZn53PTUUjq0acGzt46na3vdD6g2lAREpNHYsf8IN85aSouEZsy7bTy9O7UJO6RG76RJwMxmm1mWma2NKvu5mW0ws9Vm9pqZdQrKB5pZgZmtDB5PRi0z1szWmNkWM/uNqQ+XiFTDnoMF3DBrKcWlZcy7bTwDu+mGcHWhKkcCc4BJx5UtBka6+yhgE/BA1Lyt7j46eNwZVf4EMI3IuMPJFbyniEiFsg4VcsMfl3CosJhnbx1Pco/EsENqMk6aBNz9PSDnuLK/u3tJ8HIJ0PdE7xEMTN/B3T/0yHiWc4ErahayiMSTnCPHuPGppWTlFzHn5nG6I2gdq4tzArcAb0S9PsXMPjKzf5rZuUFZHyA9qk56UCYiUqlDhcVMmb2UnQeOMmtqCmMHdA47pCanVreSNrPvAiXAvKAoA+jv7gfMbCzwJzMbAVTU/l/pCPdmNo1I0xH9+/evTYgi0kgdLirhK7OXsXFfPjNvStEtoetJjY8EzGwqcDlwQ9DEg7sXufuBYDoN2AoMIfKff3STUV9gb2Xv7e4z3T3F3VOSkpJqGqKINFJHj5Vwy9PLWZWex2+vO5PPDesedkhNVo2SgJlNAr4NfMHdj0aVJ5lZQjA9iMgJ4G3ungHkm9mEoFfQFOD1WkcvIk1OwbFSbpmznNSdOfz6mtFMGqkxAerTSZuDzOx5YCLQzczSgR8Q6Q3UClgc9PRcEvQEOg/4sZmVAKXAne5eflL5LiI9jdoQOYcQfR5BRITC4lJun5vK0u05PHr1aD5/Ru+wQ2ryLGjJabBSUlI8NTU17DBEpJ4VFpdyx7NpvLc5m59feQZXjj1hp0M5ATNLc/eUqtTVFcMiErpjJWXcPW8F/9yUzcNfOl0JIIaUBEQkVMdKIgPDv7Mhi59cMZJrzlKPwFiqVRdREZHaOFZSxvT5K1j8cSY//PxwjQscAiUBEQlFeRPQW+sz+dEXRjD1MwPDDikuKQmISMwVlZQyfd4K3lqfxY8nj2DK2QPDDiluKQmISEwVlZRy13ORcwAPTh7BTUoAoVISEJGYKSwu5a7n0vjHxmx+csVInQNoAJQERCQmCotLufO5NN7dmM3/fvF0rh+vXkANgZKAiNS7gmOlTHs2lfc37+ehL53OdeOUABoKJQERqVeHi0oi9wLakcMvrtKVwA2NkoCI1JtDhcV8ZfYyVqXn8etrz+QLuhdQg6MkICL14uDRY9z01DI27DvE49ePYdLInmGHJBVQEhCROrf/cBE3zlrKtv1H+MNNYzl/WI+wQ5JKKAmISJ3KPFTIDbOWkp57lKempnBusgaGasiUBESkzuzOOcoNs5ay/3BkUPgJg7qGHZKchJKAiNSJzZn53PjUUgqLy5h323jO7K9B4RuDKt1K2sxmm1mWma2NKutiZovNbHPw3DkoNzP7jZltMbPVZjYmapmpQf3NwRjFItIErEnP4+o/fEhpGbx4xwQlgEakquMJzAEmHVd2P/C2uycDbwevAS4lMrZwMjANeAIiSYPI0JTjgXHAD8oTh4g0Xsu253D9H5fQtmVzXr7zbIb17BB2SFINVUoC7v4ekHNc8WTgmWD6GeCKqPK5HrEE6GRmvYBLgMXunuPuucBiPp1YRKQReXdjFlNmL6V7h1a8fNfZDOzWLuyQpJpqc06gh7tnALh7hpl1D8r7ALuj6qUHZZWVi0gj9NfVGdzz4kcM6ZHI3FvG0bV9q7BDkhqoj+ElrYIyP0H5p9/AbJqZpZpZanZ2dp0GJyK19+ySncx4fgVn9O3E/NsnKAE0YrVJAplBMw/Bc1ZQng70i6rXF9h7gvJPcfeZ7p7i7ilJSepjLNJQuDuPvbWZ7/1pLecP7c6zt46nY5sWYYcltVCbJLAQKO/hMxV4Pap8StBLaAKQFzQbvQlcbGadgxPCFwdlItIIlJU5P1i4jkff2sSXx/TlyZvG0qZlQthhSS1V6ZyAmT0PTAS6mVk6kV4+DwMLzOxWYBdwVVB9EXAZsAU4CtwM4O45ZvYgsDyo92N3P/5ks4g0QMdKyvifBSv5y+oMbj/3FB649DSaNauohVcaG3OvsFm+wUhJSfHU1NSwwxCJW0eKSrjzuTTe37yfBy4dxh2fHRx2SHISZpbm7ilVqasrhkWkUvsPF3HLnOWs3ZPHI1eO4uqUfidfSBoVJQERqdCO/UeY+vQyMg8V8oebUrhouO4E2hQpCYjIp6zcfZBb5kRO382/fQJjdBuIJktJQET+j7fXZzJ9/gq6J7bmmVvGcYquAm7SlARE5BPzl+7i//1pDSN6d2T2V84iKVEXgTV1SgIigrvz6OJN/OadLUwcmsTj14+hXSvtHuKBPmWROFdUUsr9r6zhtY/2cHVKX376xdNpkVAfd5SRhkhJQCSOHTx6jGnPprFsew7fvHgI0z93Kma6CCyeKAmIxKmdB45w89PLSc8t4LFrRzN5tG7qG4+UBETiUNrOHG6fm0aZO/NuH89ZA7uEHZKERElAJM78edVe7n1pFb07tubpm9UFNN4pCYjECXfnd+9s4ZeLN5EyoDMzp6TQpV3LsMOSkCkJiMSBwuJS7nt5NQtX7eWLZ/bhoS+dTusWug20KAmINHlZ+YVMm5vGyt0H+dYlQ7l74mD1AJJPKAmINGFr9+Rx+9xUDh4t5skbxzJpZM+wQ5IGRklApIl6c90+7nlhJZ3atuClO89mZJ+OYYckDZCSgEgT4+48/o8t/OLvmxjdrxMzp4yle2LrsMOSBqrGScDMhgIvRhUNAr4PdAJuB7KD8u+4+6JgmQeAW4FS4GvurjGGRerQkaISvvnSKt5Yu48rRvfm4S+P0glgOaEaJwF33wiMBjCzBGAP8BqRMYUfdfdfRNc3s+HAtcAIoDfwlpkNcffSmsYgIv+x68BRpj2byqbMfL572Wncdu4pOgEsJ1VXzUEXAFvdfecJvnSTgRfcvQjYbmZbgHHAh3UUg0jc+mDzfmY8vwJ3eOaWcZybnBR2SNJI1NWtAq8Fno96PcPMVpvZbDMrH5KoD7A7qk56UPYpZjbNzFLNLDU7O7uiKiJCpP1/1vvbmDJ7Kd0TW7FwxjlKAFIttU4CZtYS+ALwUlD0BDCYSFNRBvDL8qoVLO4Vvae7z3T3FHdPSUrSF1qkIgXHSrl3wSp+8tf1XDS8B6/efQ4DuuoWEFI9ddEcdCmwwt0zAcqfAczsj8BfgpfpQL+o5foCe+tg/SJxZ+eBI9zxbBobM/O596LILaCbNVP7v1RfXSSB64hqCjKzXu6eEbz8IrA2mF4IzDezXxE5MZwMLKuD9YvElbfXZ3LPiytpZsbTXzmLiUO7hx2SNGK1SgJm1ha4CLgjqvgRMxtNpKlnR/k8d19nZguAj4ESYLp6BolUXWmZ89hbkSEgR/TuwJM3jqVfl7ZhhyWNXK2SgLsfBboeV3bTCer/FPhpbdYpEo9yjxzj6y+u5L1N2Vw1ti8PXjFS/f+lTuiKYZEG7qNducyY/xHZ+UU89KXTufasfur/L3VGSUCkgXJ3nv7XDh56Yz3dE1vz0p1nc0a/TmGHJU2MkoBIA3SosJj7XlrN39bt48LTuvPLq0bTsW2LsMOSJkhJQKSBWbsnj7vnrWDPwQLd/kHqnZKASAPh7jy3dBcP/vljurZvyYI7JjB2gAaAl/qlJCDSAOQdLeb+V1fzxtp9fHZIEo9eM1rj/0pMKAmIhGz5jhy+/vxHZOUX8cClw7j93EG6+ldiRklAJCSlZZHBX3791ib6dWnLK3d9Rr1/JOaUBERCkJFXwD0vrGTp9hyuGN2bB68YSWJr9f6R2FMSEImxv63N4P5X13CspIxfXHUGXx7TR71/JDRKAiIxcriohB//eR0LUtM5vU9HHrt2NIOS2ocdlsQ5JQGRGEjbmcs3XlxJeu5RZnzuVL52QTItm9fVmE4iNackIFKPikvL+O3bm/ndP7bQu1MbXrzjbM4aqL7/0nAoCYjUk23Zh/nGglWs2n2QL4/pyw+/MFwnf6XBURIQqWNlZc7T/97BI3/bQOsWCTx+/Rj+e1SvsMMSqZCSgEgd2nXgKN98eRXLtudw/rDuPPSl0+nRoXXYYYlUqtZJwMx2APlAKVDi7ilm1gV4ERhIZHSxq9091yL94B4DLgOOAl9x9xW1jUEkbO7OvKW7+N9F60kw45ErR3HV2L7q+ikNXl0dCXzO3fdHvb4feNvdHzaz+4PX3yYyKH1y8BgPPBE8izRaew8W8O1XVvP+5v2cm9yNn315FL07tQk7LJEqqa/moMnAxGD6GeBdIklgMjDX3R1YYmadjhuYXqTRKCtz5i3bxc/e2ECZOz+5YiQ3jO+v//6lUamLJODA383MgT+4+0ygR/mO3d0zzKx7ULcPsDtq2fSg7P8kATObBkwD6N+/fx2EKFK3tmUf5v5X17Bsew7/dWo3HvrS6Rr0XRqlukgC57j73mBHv9jMNpygbkX/IvmnCiKJZCZASkrKp+aLhKWktIxZH2zn0cWbaNW8mdr+pdGrdRJw973Bc5aZvQaMAzLLm3nMrBeQFVRPB/pFLd4X2FvbGERi4eO9h7jvlVWs3XOIS0b04MHJI+munj/SyNXqunUza2dmieXTwMXAWmAhMDWoNhV4PZheCEyxiAlAns4HSEN39FgJDy1az+d/9wH78gr5/Q1jePLGsUoA0iTU9kigB/BacCjcHJjv7n8zs+XAAjO7FdgFXBXUX0Ske+gWIl1Eb67l+kXq1dvrM/n+6+vYc7CAa1L6cf+lw+isEb+kCalVEnD3bcAZFZQfAC6ooNyB6bVZp0gs7Msr5Ed/Xscba/eR3L09C+44m3Gn6J4/0vToimGRKCWlZTy7ZCe//PsmikvL+NYlQ7n93EG646c0WUoCIoHUHTl87/V1rM84xHlDknhw8ggGdG0Xdlgi9UpJQOJeVn4hD7+xgVdX7KF3x9b8/oYxXDqyp7p9SlxQEpC4VVJaxjMf7uTXizdRWFLK3RMHM+P8U2nbUj8LiR/6tktc+veW/fzozx+zMTOf84Yk8cPPD9dQjxKXlAQkrmzff4T/XbSexR9n0qdTG568cSyXjOihph+JW0oCEhfyCor53TubmfPvHbRMaMZ9k4Zyyzmn0LpFQtihiYRKSUCatJLSMl5YvptfLd5E7tFjXD22H/deMoTuibraVwSUBKSJcncWf5zJI29uZEvWYcaf0oXvXT6ckX06hh2aSIOiJCBNTtrOXB5+Yz3Ld+QyqFs7tfuLnICSgDQZW7MP8/O/beRv6/bRrX0rfnLFSK45qx8tEnS1r0hllASk0cvIK+C372zhxeW7ad28Gd+4cAi3nXsK7Vrp6y1yMvqVSKOVnV/EE+9u5bmlO3F3bhjfn6+en0xSYquwQxNpNJQEpNE5ePQYf3hvG3P+tYOiklKuHNuXr56frOEdRWpASUAajbyCYub8awez3t/G4WMlfH5Ub+65MFlX+orUgpKANHgHjx5j9gfbefpfO8gvKuGi4T249+IhDOvZIezQRBq9GicBM+sHzAV6AmXATHd/zMx+CNwOZAdVv+Pui4JlHgBuBUqBr7n7m7WIXZq4A4eLmPXBdub+ewdHjpVy6ciezDj/VEb0Vl9/kbpSmyOBEuBed18RjDOcZmaLg3mPuvsvoiub2XDgWmAE0Bt4y8yGuHtpLWKQJmhfXiFPfbCN55bsorCklMtH9WbG505laM/EsEMTaXJqnASCAeIzgul8M1sP9DnBIpOBF9y9CNhuZluAccCHNY1BmpYtWYeZ+d5WXvtoD6VlzhWj+3D3507l1O5q8xepL3VyTsDMBgJnAkuBc4AZZjYFSCVytJBLJEEsiVosnRMnDYkTaTtzefKfW1n8cSatWzTjunH9uf3cQertIxIDtU4CZtYeeAW4x90PmdkTwIOAB8+/BG4BKrpm3yt5z2nANID+/fvXNkRpgErLnLfWZzLr/W0s35FLp7Yt+NoFyUw9ewBd26ufv0is1CoJmFkLIglgnru/CuDumVHz/wj8JXiZDvSLWrwvsLei93X3mcBMgJSUlAoThTRO+YXFLEhNZ86/t7M7p4A+ndrw/cuHc81Z/XSFr0gIatM7yICngPXu/quo8l7B+QKALwJrg+mFwHwz+xWRE8PJwLKarl8al50HjjDn3zt4KTWdw0UlpAzozAOXnsbFw3vQXPf2EQlNbf71Oge4CVhjZiuDsu8A15nZaCJNPTuAOwDcfZ2ZLQA+JtKzaLp6BjVtpWXOe5uyeW7JTt7ZmEWCGZeP6sXN55zCGf06hR2eiFC73kEfUHE7/6ITLPNT4Kc1Xac0DgcOF7EgNZ35y3ayO6eAbu1bMn3iqdx09gB6dNBgLiINiRphpU64O8t35DJ/6U4WrdnHsdIyxp/ShfsuGcYlI3rSsrmafEQaIiUBqZWsQ4W8smIPL6XuZtv+IyS2as714/tzw/j+JPfQxV0iDZ2SgFRbcWkZ72zIYsHy3by7KZvSMmfcwC7cNXEw/z2qF21b6msl0ljo1ypV4u6s3H2Q11fu5c+r9nLgyDG6J7Zi2nmDuGpsX93JU6SRUhKQE9q+/wh/+mgPr6/cw44DR2nZvBkXntadL4/py2eHJKl7p0gjpyQgn7LnYAFvrMngz6szWLX7IGZw9qCu3D3xVCad3pMOrVuEHaKI1BElAQEgPfcoi9Zk8Nc1+1i1+yAAI3p34DuXDePzZ/SmV8c2IUcoIvVBSSBOuTubsw7z1vpM3ly7j1XpeQCM7NOB+yYN5bKRvRjYrV3IUYpIfVMSiCPFpWUs35HDWx9n8db6THblHAVgVN+OfHvSMC47vScDumrHLxJPlASauMxDhfxzUzbvBY9DhSW0bN6McwZ35Y7PDuKCYT3o2VFX8YrEKyWBJqawuJTUHbm8tzmy09+wLx+ApMRWXDyiJxee1oNzk7vpjp0iAigJNHrHSspYlX6QD7ceYMm2A6TtzKUngOBjAAAINUlEQVSopIwWCUbKgC7cf+kwzktO4rReiURu/Coi8h9KAo3MkaISVqUfZMXOXJZsyyF1Zw6FxWUAnNarAzeMH8BnBnfl7MFd9d++iJyU9hINmLuTnlvAil25pO2MPDbsy6e0LDLOzrCeiVx7Vn/OHtyVcQO70Lldy5AjFpHGRkmggSjf4a/Zk8eaPXmsDR65R4sBaNsygTP7d+LuiYMZM6AzY/p1pmNbXbQlIrWjJBCCvIJiNmfmszEzn037Is/rM/LJK4js8Js3M4b0SOTi4T0Z2bcjY/p3YmiPRN2iQUTqXMyTgJlNAh4DEoBZ7v5wrGOIheLSMtJzC9ix/wjb9h9hx/4j7DhwhC1Zh8nIK/ykXvtWzUnu0Z7LTu/JyD4dGdm7I0N7JtK6RUKI0YtIvIhpEjCzBOBx4CIiA88vN7OF7v5xLOOoLXfncFEJ2flFZOQVsie3gD0Hg0duAXvzIs8lQds9QGLr5gzq1o4Jg7oytGciQ3skMqRnIr07tlavHREJTayPBMYBW9x9G4CZvQBMJjLucMyVlJZRUFxKwbFSCopLOVxUQl5BMYcKismLehw8Wkx2fhH7DxeRfbiI7PyiT3rklDODHomt6d2pNaf36cjlo3oxsGs7BiW1Y2DXdnRp11I7exFpcGKdBPoAu6NepwPj62NFl//2fY4WlVLqTmnZfx5l7hSVlFFYXEpxqZ/0fRKaGR3btKBb+5YkJbZibP/OJCW2olv7ViQltqJXxzb07dyGHh1aawhFEWl0Yp0EKvpX+FN7YjObBkwD6N+/f41WlNw9keLSMpo3M5o1M5o3MxKaGc3MaJHQjLYtE2jTIoE2LYNHiwTatkygQ5sWdIx6tG/VXP/Bi0iTFeskkA70i3rdF9h7fCV3nwnMBEhJSTn5v+sVePSa0TVZTEQkrsS6/WI5kGxmp5hZS+BaYGGMYxARkUBMjwTcvcTMZgBvEukiOtvd18UyBhER+Y+YXyfg7ouARbFer4iIfJq6s4iIxDElARGROKYkICISx5QERETimJKAiEgcM/caXYsVM2aWDeys4eLdgP11GE5dUVzVo7iqR3FVT1OMa4C7J1WlYoNPArVhZqnunhJ2HMdTXNWjuKpHcVVPvMel5iARkTimJCAiEseaehKYGXYAlVBc1aO4qkdxVU9cx9WkzwmIiMiJNfUjAREROYEmkQTMbJKZbTSzLWZ2fwXzW5nZi8H8pWY2MAYx9TOzf5jZejNbZ2Zfr6DORDPLM7OVweP79R1XsN4dZrYmWGdqBfPNzH4TbK/VZjYmBjENjdoOK83skJndc1ydmGwvM5ttZllmtjaqrIuZLTazzcFz50qWnRrU2WxmU2MQ18/NbEPwOb1mZp0qWfaEn3k9xPVDM9sT9VldVsmyJ/zt1kNcL0bFtMPMVlaybH1urwr3DaF9x9y9UT+I3JJ6KzAIaAmsAoYfV+du4Mlg+lrgxRjE1QsYE0wnApsqiGsi8JcQttkOoNsJ5l8GvEFkJLgJwNIQPtN9RPo6x3x7AecBY4C1UWWPAPcH0/cDP6tguS7AtuC5czDduZ7juhhoHkz/rKK4qvKZ10NcPwS+WYXP+YS/3bqO67j5vwS+H8L2qnDfENZ3rCkcCXwyeL27HwPKB6+PNhl4Jph+GbjA6nnMSHfPcPcVwXQ+sJ7IGMuNwWRgrkcsATqZWa8Yrv8CYKu71/QiwVpx9/eAnOOKo79DzwBXVLDoJcBid89x91xgMTCpPuNy97+7e0nwcgmR0fpiqpLtVRVV+e3WS1zB7/9q4Pm6Wl9VnWDfEMp3rCkkgYoGrz9+Z/tJneAHkwd0jUl0QND8dCawtILZZ5vZKjN7w8xGxCgkB/5uZmkWGc/5eFXZpvXpWir/cYaxvQB6uHsGRH7EQPcK6oS93W4hcgRXkZN95vVhRtBMNbuSpo0wt9e5QKa7b65kfky213H7hlC+Y00hCVRl8PoqDXBfH8ysPfAKcI+7Hzpu9goiTR5nAL8F/hSLmIBz3H0McCkw3czOO25+mNurJfAF4KUKZoe1vaoqzO32XaAEmFdJlZN95nXtCWAwMBrIINL0crzQthdwHSc+Cqj37XWSfUOli1VQVqtt1hSSQFUGr/+kjpk1BzpSs8PXajGzFkQ+5Hnu/urx8939kLsfDqYXAS3MrFt9x+Xue4PnLOA1Iofl0aqyTevLpcAKd888fkZY2yuQWd4kFjxnVVAnlO0WnBy8HLjBg4bj41XhM69T7p7p7qXuXgb8sZL1hbW9mgNfAl6srE59b69K9g2hfMeaQhKoyuD1C4Hys+hXAu9U9mOpK0Gb41PAenf/VSV1epafmzCzcUQ+jwP1HFc7M0ssnyZyYnHtcdUWAlMsYgKQV36YGgOV/ocWxvaKEv0dmgq8XkGdN4GLzaxz0PxxcVBWb8xsEvBt4AvufrSSOlX5zOs6ruhzSF+sZH1V+e3WhwuBDe6eXtHM+t5eJ9g3hPMdq4+z37F+EOnNsolIT4PvBmU/JvLDAGhNpHlhC7AMGBSDmP6LyGHaamBl8LgMuBO4M6gzA1hHpFfEEuAzMYhrULC+VcG6y7dXdFwGPB5szzVASow+x7ZEduodo8pivr2IJKEMoJjIf163EjmH9DawOXjuEtRNAWZFLXtL8D3bAtwcg7i2EGkjLv+OlfeC6w0sOtFnXs9xPRt8d1YT2bn1Oj6u4PWnfrv1GVdQPqf8OxVVN5bbq7J9QyjfMV0xLCISx5pCc5CIiNSQkoCISBxTEhARiWNKAiIicUxJQEQkjikJiIjEMSUBEZE4piQgIhLH/j9UbJV9QC+UhQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# position vs time\n",
    "# with constant ACCELERATION motion\n",
    "\n",
    "plot_continuous_function(constant_acceleration_motion, 0, 20)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "----\n",
    "\n",
    "## 3 -  “手动”发现*特定点* 的导数\n",
    "\n",
    "让我们回到之前的向上抛球的例子，看看我们能否在不同的时间找到球的**速度**。还记得吗，图表看起来是这样的："
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.title(\"Position vs Time for ball thrown upwards\")\n",
    "plt.ylabel(\"Position above ground (meters)\")\n",
    "plt.xlabel(\"Time (seconds)\")\n",
    "plot_continuous_function(position_b,0,6.12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "现在我想知道球在t = 2秒时的**速度**。\n",
    "\n",
    "> 目标 - 找到球在t = 2秒时的速度\n",
    "\n",
    "请牢记，**速度是位置的导数**，这意味着**速度是位置的切线的斜率** 。\n",
    "\n",
    "现在，我们有了位置与时间的关系......只需要找到在那个图中， t = 2 时的切线的斜率就可以了。\n",
    "\n",
    "要做到这一点，其中一种方法是放大图表直到曲线开始看起来是直的。我可以通过改变`plot_continuous_function`的两个输入，即`t_min`和`t_max` ，来做到这一点。\n",
    "\n",
    "#### 练习 - 通过放大，使函数“线性化”\n",
    "\n",
    "下面的代码可以让你调整单个参数`DELTA_T`，从而控制具体要放大多少。\n",
    "\n",
    "仔细阅读并运行代码，了解其工作原理。\n",
    "\n",
    "然后，调整`DELTA_T`，直到图形看起来像一条直线。接下来，首先尝试`DELTA_T = 3.0`，然后尝试`DELTA_T = 2.5`，然后尝试`2.0` ，等...\n",
    "\n",
    "“导数的正式定义”中有一部分是这样的：\n",
    "\n",
    "$$\\lim_{\\Delta t \\to 0}$$\n",
    "\n",
    "在这个练习中，我们将探索的是，为什么“将 delta t 变为零“，非常有必要。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYIAAAEWCAYAAABrDZDcAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDIuMi4yLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvhp/UCwAAIABJREFUeJzt3Xd4HNXVx/HvT7Js2Zbce+/YGNwxJqYYQocAoYXecSChhRIgkAR4IYHQAwkEgsEQisEQeidghwA2Nu4N917kLrnIlnTeP2YEi1EZy1qtVns+z7OPps+Z3dWcvXdm7pWZ4ZxzLnWlJToA55xzieWJwDnnUpwnAuecS3GeCJxzLsV5InDOuRTnicA551KcJ4IkIamDpDxJ6WUskyepS1XGVRmiHFsl7qulpLGSciXdXwnbu0DS5xVcd5ikZTHjiyQdvhvr79byrnSSPpN0SaLjSBRPBHES/pNuC09wqyU9LSmrotszsyVmlmVmheH2f/TFDecv2NPYK5ukx8P3IU/SDkk7Y8bf2/XY4mw4sBZoYGbXVcH+KoWkZyTdmeg4XM3kiSC+fmZmWcAAYD/g1gTHkxBmdll4os8C/gSMKh43s2OqOJyOwEyrwJOUkmrFIZ4qkcyxVyZ/H0rmiaAKmNly4D1gHwBJbSS9KWm9pHmSLi1eVtJgSRMkbQ5LEg+E0ztJMkm1JN0FHAQ8Gv6qfjRcxiR1C4cbSnpWUo6kxZJulZQWzrtA0ueS7pO0QdJCSSWekCXdJGn0LtMelvTXmG0tCKtaFko6e3ffn9hjC8c/k3SnpC/C43tLUlNJz4fvy9eSOsWs31PSR+H7OUfS6aXs5xngfOC34XYPl1RH0kOSVoSvhyTVCZcfJmmZpBslrQKeLv0Q9IikTZJmS/ppzIwLJc0K358Fkn5ZgfdnOHB2TNxvxczuJ2lquO9RkjLLil3SpeF3bn34HWwTTr9d0iPhcIakLZL+Eo7XlbRdUuOYz+p8SUskrZV0Sxmx/6Dkql2q0sJtXRW+N2sl3RvzPV0saWA4fE647N7h+CWSXg+HB0v6UtJGSSslPSqp9i77+LWkucDccNoR4We1Kfz/Uczy3SSNCeetlTRqdz+zpGNm/orDC1gEHB4OtwdmAP8Xjo8B/g5kAv2AHOCn4bwvgXPD4SxgSDjcCTCgVjj+GXDJLvs0oFs4/CzwBpAdrvstcHE47wJgJ3ApkA5cDqwAVMJxdAS2ElSlEC6/EhgC1Ac2A3uF81oDvct5X24D/rXLtJKObR7QFWgIzAzjPxyoFR7b0+Gy9YGlwIXhvAEEVT8lxgE8A9wZM34H8BXQAmgOfBHzOQ0DCoB7gDpA3RK2d0G4zG+ADOAXwCagSTj/uPA4BBwSvpcDYra/rKTvTHlxxyw/HmgDNAFmAZeVFjtwWPjeDAinPQKMDZc/DJgWDv8EmA+Mi5k3ZZfP6slwm32BfKBXKXF/Rsz3NHy/Pt/lO/tpGH+H8HO+JOY7fF04/EQY0+Ux834TDg8k+D7WCuObBVyzyz4+CvdRF2hG8L09NfzMfhO+V8X7fRG4heCHciZwYKLPJ/F+eYkgvl6XtBH4nODk/ydJ7YEDgRvNbLuZTQb+CZwbrrMT6CapmZnlmdlXu7tTBRddfwHcbGa5ZrYIuD9mHwCLzexJC+rlRxKcxFvuui0zWwx8A5wUTjoM2BoTVxGwj6S6ZrbSzGbsbryleNrM5pvZJoLS1Hwz+9jMCoBXgP7hcscDi8zsaTMrMLNvgFcJ/smjOBu4w8zWmFkOcDs/fJ+KgD+aWb6ZbStlG2uAh8xsp5mNAuYQJADM7J3wOMzMxgAfEpTmKstfzWyFma0H3iL4YVFa7GcDI8zsGzPLB24GDghLV18C3SU1BQ4GngLaKriudQjB9zfW7Wa2zcymAFMIEkJF3WNm681sCfAQcGY4fUy4bwjesz/HjH8Xk5lNNLOvws9/EfCPmOWK/TncxzbgWILqwdFmtjPc56qYZXcS/ABqE/6PVuhmgGTiiSC+TjKzRmbW0cx+FX4J2wDrzSw3ZrnFQNtw+GKgBzA7rAI5vgL7bQbUDrdb0j4g5otvZlvDwdIuZr/A9/+cZ4XjmNkWgoRzGbBS0juSelYg3pKsjhneVsJ4cawdgf3DaoGNYeI9G2gVcT9t+PH71CZmPMfMtpezjeUW/pTcdRuSjpH0VVgVs5HgJNQsYmxRxJ7AtvLDz3DX2H9wrGaWB6wD2obfzQkEJ9CDCU6yXwBDKTkRlLXf3bU0Zjj2/R8DHCSpFUFJdBQwNExcDYHJAJJ6SHpb0ipJmwmuQ+36Hsfuo03sePjZxc7/LUEJbrykGZIu2oNjSwqeCKreCqCJpOyYaR2A5QBmNtfMziSoqrgHGC2pfgnbKeti51q+/1Xzo31UwCvAMEntgJ8TJoIw3g/M7AiCEsVsgiqDqrQUGBMm3OJXlpldHnH9Ffz4fVoRMx7lonJbSYoZ7wCsCK81vArcB7Q0s0bAu8TUR++GijQTvOs6PzjW8HvVlO+/F2MISnz9ga/D8aOAwcDYCuwfYAtQL2a8pATdPmb4u/ffzOYRJJmrCKqwcgkS0HCC6qWicJ3HCL573c2sAfA7fvwex74XK2P3GX52342b2Sozu9TM2gC/BP6u8NpbTeWJoIqZ2VKCX1p/lpQpqQ9BKeB5+O6iWPPwS74xXK2k2ypXAyU+MxBW97wM3CUpW1JH4FrgXxWMOYegrvdpYKGZzQpjbSnphPCEkg/klRJrPL0N9JB0bniRM0PSfpJ6RVz/ReBWSc0lNQP+wO6/Ty2Aq8J9nwb0Ijjh1yaoi88BChRckD9yN7ddrNTPeze8AFwoqV+YpP5EcB1gUTh/DHAeQbXJDsL6fYLPPKeC+5wMnCypXngyvbiEZW4IL0S3B64m+OVfbAxwBd+XSD7bZRyC62CbgbywRFrej4B3gN6STlZwg8JVxCQoSaeFP3oANhAkkar+XlcpTwSJcSbBRa0VwL8J6nE/CucdDcyQlAc8DJxRStXEw8CpCu76+WsJ868k+DW2gOAaxQvAiD2I+QWCi7UvxExLA64Lj2M9QRXCr/ZgH7st/JV4JHBGGMcqvr9AGsWdBFUiU4FpBNdDdvd+/XFAd4KS2F3AqWa2LoztKoKkvIGgWu3N3dx2saeAvcPqr9crsgEz+wT4PUEpZSXBRewzYhb5guBiavGv/5nAdipeGgB4ENhBkMhGEv7g2cUbwESCpPEOwbEWG0Nwoh9byjjA9QTvbS5BibTMu3zMbC1wGnA3QdVYd+B/MYvsB4wL/wffBK42s4XlHGdS0w+rNp1zrupIMoIqnXmJjiWVeYnAOedSnCcC55xLcV415JxzKc5LBM45l+KSogGmZs2aWadOnRIdhnPOJZWJEyeuNbPm5S2XFImgU6dOTJgwIdFhOOdcUpG0uPylvGrIOedSnicC55xLcZ4InHMuxXkicM65FOeJwDnnUpwnAuecS3GeCJxzLsUlxXMEzjm3q207Clm3JZ+8/AK25BeyJb+ArTvC4R0F7CgoosiMgiKjqMgoLIJCMwTUrpVG7fQ0MtJFRq00MtLTyMxIJzuzFg0yM2iQWYsGdTPIzqxF3Yx0ftjvUM3jicA5V63sKChi5aZtLN+wjWUbg78rN21jXd4O1m7Zwbq8fNZv2cHWHVXTV0xGumiWVYcW2XVonp1JiwZ1aJ5Vh5YNMmnbuC4dmtSjbaO61K6VvBUsngicc1WuqMhYsWkb83O2MG9NHvNz8pi/Jo9F67awJjef2LYwJWieVYdmWXVomlWbLs3q07R+bZpm1aFJ/QyyMzOoX6cW9WunU692LbLq1KJu7XRq10ojPU3UShNpEulpIk1gBjuLithZaOwsKGJHYRE7CorYvrOQ3PwCNm/bSe72AjZv38nmbQVs2raTnNx8cvLyWbZhK5OWbGDdlh0/OJ40QeuGQVLo0KQeXZrXp0fLbHq0yqZNw8xqX6LwROCci6vtOwuZvSqXGSs2MX35Zmas2MTc1Xls2/n9L/qGdTPo1iKLA7s1p13jurRtXJd2jYK/rRtW7q9tCeqkpVOnFtH7sdvFzsIicnLzWb5xG0vWbWXJ+u9fn8xew6gJ+d8tm1WnFt1aZLFXy2x6ts6mT7uG9G7TkMyM9Mo5oEoQ92aoJaUTdAW43MyOl/QMQZeGm8JFLjCzyWVtY9CgQeZtDTlX/RUVGfNz8piweAMTF29g+vJNzF2TR2FRcJ5pWDeD3m0a0LNVA7q1yKJr8/p0bZFF0/q1q/2v5t2xaetO5q7JZc7qXOauzmPOqly+XZ37XUkiPU30aJlNn7YN6dO+IX3bNaJX6wakp1XueyBpopkNKm+5qigRXA3MAhrETLvBzEZXwb6dc3GUX1DIlKWb+HrReiaGJ/9N23YC0KR+bfq2a8gRe7ekd5sG9G7TkHaN69aoE35pGtbLYFCnJgzq1OQH01dv3s6UpRuZumwTU5Zt5IOZqxg1YSkA2XVqMahTYwZ3bsrgzk3Yt23DKrvuENdEIKkdcBxBh97XxnNfzrn4MzNmr8rlf/PW8t+5axm/cP13VTxdm9fn6N6tGNipMYM6NqZzs/opcdLfHS0bZHJk71Yc2bsVELyfS9dv45slGxi/aD3jF67n0zmzAcjMSKN/+8bccPReDOjQOK5xxbtE8BDwWyB7l+l3SfoD8Alwk5nl77qipOHAcIAOHTrEOUznXGk2bt3BZ3Ny+HTOGv43by1r84Lqja7N63P6oHb8pFszBndqQuP6tRMcafKRRIem9ejQtB4n9W8LwNq8fCYsWs+4hUFiqFMFpYK4XSOQdDxwrJn9StIw4PrwGkFrYBVQG3gCmG9md5S1Lb9G4FzVWrh2C5/MWs1HM1czYfEGCouMpvVrc2D3ZhzYrRlDuzWjTaO6iQ7TlaM6XCMYCpwg6VggE2gg6V9mdk44P1/S08D1cYzBOReBmTFrZS5vT13BBzNWMT9nCwA9W2Vz2SFdOLxXS/q2a0RaJV/MdNVD3BKBmd0M3AwQUyI4R1JrM1upoPLwJGB6vGJwzpVt7upc3pq6krenrmBBzhbS08SQLk04Z0hHDu/VkvZN6iU6RFcFEvEcwfOSmgMCJgOXJSAG51LWio3b+Pek5bw5eQVzVuciwZDOTbloaGeO2acVTbMqeHO9S1pVkgjM7DPgs3D4sKrYp3Pue9t3FvLBjFWMnriMz+etxQz269SY20/ozTH7tqJFdmaiQ3QJ5E8WO1dDmRmTlm7klQnLeHvKCnLzC2jbqC5XHdadUwa0o0NTr/ZxAU8EztUwW/ILeGPyCp77ajGzVm6mbkY6x+zbilMHtmNI56Z+wdf9iCcC52qIuatz+ddXi3n1m+Xk5RfQq3UD7vr5PpzYry1Zdfxf3ZXOvx3OJbHCIuPjWasZ8flCxi1cT+30NI7r05pzhnRkQIdG/mSvi8QTgXNJaOuOAkZPXMaIzxeyaN1W2jaqy03H9OS0ge38rh+32zwROJdE1mzezsgvF/H8uCVs3LqTfu0b8bejenJU75bUSk/ejlFcYnkicC4JLFm3lcfGzGP0xGUUFBlH7d2KSw7qzMCOjb36x+0xTwTOVWPz1uTy90/n88aUFaSniTP268AlB3WmY9P6iQ7N1SCeCJyrhmau2MzfPp3Hu9NXklkrnYuGduLSg7rQooE/+OUqnycC56qROatyuf/DOXw4czVZdWrxq2FdufjALjTxJp5dHHkicK4aWLR2Cw99/C1vTFlBVu1aXHN4dy78SWca1stIdGguBZSZCCRlAscDBwFtgG0ErYW+Y2Yz4h+eczXbio3beOQ/c3l5wjIy0sVlh3Tllwd3oVE9LwG4qlNqIpB0G/AzgsbixgFrCPoV6AHcHSaJ68xsavzDdK5m2bh1B4/+Zx7PfrUYM+PcIR351aFdvfE3lxBllQi+NrPbSpn3gKQWgPch6dxuyC8o5LkvF/PXT+aSl1/AKQPacfXh3WnX2BuAc4lTaiIws3d2nSYpDcgys81mtoaglOCcK4eZ8d70Vdz93myWrN/KQd2bcctxvejZqkGiQ3Ou/IvFkl4g6DymEJgINJT0gJndG+/gnKsJJi3ZwF3vzGLC4g3s1TKbkRcN5pAezRMdlnPfiXLX0N5mtlnS2cC7wI0ECcETgXNlWJO7nXvem8Or3yyjWVYd/nzyvpw2sJ03BeGqnSiJIENSBkH/wo+a2U5JFue4nEtaOwuLePbLxTz00bdsLyjk8mFd+fWh3bwpaFdtRflmPg4sAqYAYyV1BDbHMyjnktWX89dx25szmLM6l4N7NOe2n+1Nl+ZZiQ7LuTKV9xxBGrDazNrGTFsCHBrvwJxLJqs3b+fOd2bx1pQVtGtclyfOHcgRe7f0BuFcUigzEZhZkaQrgJdjphlQEO/AnEsGRUXG8+OX8Jf3ZpNfWMQ1h3fnskO6kpmRnujQnIssStXQR5KuB0YBW4onmtn6KDuQlA5MAJab2fGSOgMvAU2Ab4BzzWzHbkfuXILNWZXL7/49jYmLNzC0W1PuOmlfOjXzVkFd8omSCC4K//46ZpoBXSLu42pgFlB8w/Q9wINm9pKkx4GLgccibsu5hNu+s5BH/jOXf4xZQHZmLR44vS8/79/Wq4Fc0io3EZhZ54puXFI74DjgLuBaBf8phwFnhYuMBG7DE4FLEl/OX8fNr01l0bqtnDKgHbcc18tbBnVJL8oDZfWAa4EOZjZcUndgLzN7O8L2HwJ+C2SH402BjWZWfI1hGdC2pBWdq0625Bdwz/uzefbLxXRsWo/nL9mfod2aJTos5ypFlKqhpwkeIPtJOL4MeAUoMxFIOh5YY2YTJQ0rnlzCoiU+kyBpODAcoEMHb9LIJc6X89fx21ensGzDNi4a2pkbjtqLurX9YrCrOaIkgq5m9gtJZwKY2TZFqwwdCpwg6ViCVksbEJQQGkmqFZYK2gErSlrZzJ4AngAYNGiQP8DmqlxsKaBT03qMGn4Agzs3SXRYzlW6KIlgh6S6hL/cJXUF8stbycxuBm4O1xkGXG9mZ0t6BTiV4M6h84E3Kha6c/Hz1YJ13DA6KAVcOLQTvz2qp5cCXI0VJRHcBrwPtJf0PMEv/Qv3YJ83Ai9JuhOYBDy1B9tyrlLlFxTywEff8sTYBXRo4qUAlxqi3DX0oaSJwBCCOv6rzWzt7uzEzD4j6OAGM1sADN7tSJ2Ls7mrc7n6pcnMXLmZs/bvwK3H9aJebW8fyNV8Ue4a+sTMfgq8U8I055KemTHyi0X8+b3ZZNWpxT/PG8The7dMdFjOVZmyuqrMBOoBzSQ15vs7fhoQ9F/sXNJbs3k714+eythvczisZwvuOaUPzbPrJDos56pUWSWCXwLXEJz0v4mZvhn4WzyDcq4qfDp7Dde9MoWtOwq486R9OHv/Dv50sEtJZXVV+TDwsKQrzeyRKozJubjaUVDEvR/M5sn/LqRnq2wePesAurXwpqJd6opyJWyEpFup2JPFzlUrS9Zt5cqXJjFl6UbOHdKRW47r5S2FupQXKRFQgSeLnatu3pm6kptenQqCx84ewDH7tk50SM5VC/F8sti5amH7zkL+7+2ZPD9uCf3aN+KRM/vTvkm9RIflXLURtyeLnasOlq7fyq+e/4Zpyzfxy4O7cP1Re5Hhncc79wNREsEf+fGTxRfEMyjnKsNnc9ZwzajJFBYZT543iCP82QDnShTlyeKPJH3DHjxZ7FxVKioy/vqfuTz8yVx6tmrA4+cMoGNT7znMudJEfX6+LZAeLn+wJMzstfiF5VzFbNiyg2tGTWbMtzmcMqAdd560jzcW51w5ojQxMQLoA8wAisLJBngicNXK9OWb+OVzE8nJzedPP9+XMwe39wfEnIsgSolgiJntHfdInNsDb05ZwW9HT6FJvdq8ctkB9G3fKNEhOZc0oiSCLyXtbWYz4x6Nc7upsMi478M5PPbZfAZ3asLfzxlAsyxvK8i53RElEYwkSAarCG4bFWBm1ieukTlXjs3bd3L1i5P4dE4OZ+/fgT/+rDe1a/mtoc7trqhPFp8LTOP7awTOJdS8NXkMf3YCS9Zv5c6T9uGcIR0THZJzSStKIlhiZm/GPRLnIvp0zhquemEStWul8cKlQ7wHMef2UJREMFvSC8BbxDxR7LePukR45n8LuePtmfRq3YAnzhtE20Z1Ex2Sc0kvSiKoS5AAjoyZ5rePuipVUFjEHW/P5NkvF3PE3i15+Ix+3o2kc5UkypPFe9JRvXN7LHf7Tq54YRJjvs1h+MFduPHonqSn+fMBzlWWsrqqvBX4u5mtL2X+YUA975fAxdOyDVu5+JkJzM/J4+6T9+WMwR0SHZJzNU5ZJYJpwFuSthN0VZkDZALdgX7Ax8Cf4h6hS1mTlmzg0mcnkF9QxMiLBjO0W7NEh+RcjVRWV5VvAG+EPZINBVoT9Ff8L2C4mW0ra8OSMoGxQJ1wP6PN7I+SngEOATaFi15gZpP39EBczfLhjFVc+eIkWjbI5KXh+3lXks7FUZRrBHOBuRXYdj5wmJnlScoAPpf0XjjvBjMbXYFtuhTw3FeL+eMb0+nTrhFPnT+Ipv6ksHNxFbfbLszMgLxwNCN8Wbz255JfUZFxb9hcxOG9WvDImQO85VDnqkBcn8eXlC5pMrAG+MjMxoWz7pI0VdKDkkr8uSdpuKQJkibk5OTEM0xXDewoKOLalyfz2GfzOWv/Djx+zkBPAs5VkbgmAjMrNLN+QDtgsKR9gJuBnsB+QBPgxlLWfcLMBpnZoObNm8czTJdgm7fv5MJnxvP65BXccNRe3HXSPtTy7iSdqzJl3T76CGVU5ZjZVVF3YmYbJX0GHG1m94WT8yU9DVwfdTuu5lmzeTvnP/01c1fncv9pfTllYLtEh+RcyinrZ9cEYCLBLaMDCC4YzyW4dbSwvA1Lai6pUThcFzicoLmK1uE0AScB0/fkAFzyWrxuC6c+/iWL121hxAX7eRJwLkHKun10JICkC4BDzWxnOP448GGEbbcGRkpKJ0g4L5vZ25L+I6k5QXPWk4HL9uwQXDKatXIz540Yz87CIl64dAj9vCMZ5xImyl1DbYBsoPgJ46xwWpnMbCrQv4Tph+1OgK7m+XrRei565muy6tTixUsPoFuL7ESH5FxKi5II7gYmSfo0HD8EuC1uEbka7T+zV/Or57+hTaO6PHfx/t56qHPVQJQHyp4OHwTbP5x0k5mtim9Yrib696RlXP/KVPZu3YBnLtzPHxRzrpqIeo9eOkFbQxuAHpIOjl9IriZ67stF/GbUFPbv3IQXhw/xJOBcNVJuiUDSPcAvgBl831WlEbQj5Fy5nhg7nz+9O5vDe7Xk0bP6k5nhD4o5V51EuUZwErCXmeWXu6RzMcyMhz+Zy0Mfz+X4Pq158Bf9yPAHxZyrdqIkggUE7QR5InCRmRl3vzebf4xdwKkD23HPKX28MxnnqqkoiWArMFnSJ/ywz+LITxa71FJUZNz21gye/XIx5w7pyO0n9CbNk4Bz1VaURPBm+HKuXIVFxo2vTmX0xGX88uAu3HRMT4KHyJ1z1VWU20dHVkUgLvkVFBZx/StTeH3yCq45vDtX/7S7JwHnkkCUu4YWUkLjc2bWJS4RuaRUUFjEtS9P4c0pQQuivz60W6JDcs5FFKVqaFDMcCZwGkHz0c4BQRL4zctTeGvKCm48uieXD+ua6JCcc7uh3Hv5zGxdzGu5mT0EeHtBDgiSwNWjJvPWlBXcdIwnAeeSUZSqoQExo2kEJQRvJcyxs7CIa16azDvTVvK7Y3sy/GBPAs4loyhVQ/fHDBcAi4DT4xKNSxo7C4u46sVJvDd9Fbcc24tLD/ZLRs4lqyh3DR1aFYG45FFQWMTVLwVJ4NbjenHJQZ4EnEtm5V4jkNRQ0gPFHclLul9Sw6oIzlU/hUXGda9M4d1pngScqymiNPwyAsglqA46HdgMPB3PoFz1VFRk3PTqVN4IO5n3JOBczRDlGkFXMzslZvx2SZPjFZCrnsyM378xnVcmLuPqn3b35wScq0GilAi2STqweETSUGBb/EJy1Y2ZccfbM3l+3BIuO6Qr1xzePdEhOecqUZQSwWXAszHXBTYA58cvJFedmBl3vz+bp/+3iIuGdubGo/fyZiOcq2HKTASS0gj6IugrqQGAmW2ukshctfDQx3P5x5gFnDOkA78/vpcnAedqoDKrhsysCLgiHN7sSSC1/PO/C3j4k7mcNrAdd5ywjycB52qoKNcIPpJ0vaT2kpoUv8pbSVKmpPGSpkiaIen2cHpnSeMkzZU0SlLtPT4KV+lGfb2EO9+ZxXH7tubuU/p4fwLO1WBRrhFcFP79dcw0A8q7dzAfOMzM8iRlAJ9Leg+4FnjQzF6S9DhwMfDYbsbt4uidqSu5+bVpHNKjOQ/+op/3LOZcDRflyeLOFdmwmRmQF45mhC8jaLDurHD6SOA2PBFUG5/NWcM1oyYxsGNjHj9nILVreR/DztV0URqdO7mEyZuAaWa2ppx104GJQDfgb8B8YKOZFYSLLAPalrLucGA4QIcOHcoL01WCrxet57J/TaRHy2yeumA/6tZOT3RIzrkqEKVq6GLgAODTcHwY8BXQQ9IdZvZcaSuaWSHQT1Ij4N9Ar5IWK2XdJ4AnAAYNGlTiMq7yTF++iYue/po2jeoy8qLBNMjMSHRIzrkqEiURFAG9zGw1gKSWBFU5+wNjgVITQTEz2yjpM2AI0EhSrbBU0A5YUcHYXSVZkJPH+SPG06BuBv+6eH+aZdVJdEjOuSoUpQK4U3ESCK0BepjZemBnaStJah6WBJBUFzgcmEVQsjg1XOx84I2KBO4qx5rN2zlvxHgAnrt4MG0a1U1wRM65qhalRPBfSW8Dr4TjpwBjJdUHNpaxXmtgZHidIA142czeljQTeEnSncAk4KmKh+/2xObtOzlvxHjWb9nBS8OH0KV5VqJDcs4lQJRE8GvgZOBAQMCzwKvhXUGl9lVgZlOB/iVMXwAMrlC0rtJs31nIpSMnMD8njxEX7Eefdo0SHZJzLkGi3D5qwKvhy9UAhUXGNS9NZtzC9Tx8Rj8O6t480SE55xLIbxJPMcXNSb8/YxV/OH5vTuxX4t27zrkU4okgxTz08VxeGLeEy4fSXNRXAAAWOUlEQVR15aIDK/SsoHOuhomUCCTVlbRXvINx8fXi+CXfNSL326P843TOBaL0WfwzYDLwfjjeT9Kb8Q7MVa5PZ6/h1tenM2yv5vz55H29JVHn3HeilAhuI7jLZyOAmU0GOsUvJFfZpi3bxK9f+IZerbP521kDqJXuNYLOue9FOSMUmNmmuEfi4mLp+q1c+MzXNK5XmxEX7Ef9OlHuGHbOpZIoZ4Xpks4C0iV1B64CvohvWK4ybNy6gwueHs+OgkJeGr4/LbIzEx2Sc64ailIiuBLoTdC/wAsELY9eE8+g3J7bvrOQ4c9OZOn6bTx53iC6tchOdEjOuWoqSolgLzO7Bbgl3sG4ylFUZFz/yhTGL1rPX8/sz/5dmiY6JOdcNRalRPCApNmS/k9S77hH5PbYvR/O4e2pK7npmJ6c0LdNosNxzlVz5SYCMzuUoA+CHOAJSdMk3RrvwFzFvPz1Uh77bD5n7d+BXx5cXm+izjkX8YEyM1tlZn8FLiN4puAPcY3KVcgX89fyu39P46Duzbj9hN7+rIBzLpIoD5T1knSbpBnAowR3DLWLe2Rut8zPyeOy5ybSuVl9Hj1rABn+rIBzLqIoF4ufBl4EjjAz702sGlq/ZQcXPfM1GelpjLhgPxrW9W4mnXPRRWmGeoik2gR9FDcB5phZqT2TuaqVX1DIZc9NZOWm7bx46RDaN6mX6JCcc0mm3EQg6RCCzmgWEXRM017S+WY2Ns6xuXKYGTe/Oo3xi4J+BQZ2bJzokJxzSShK1dADwJFmNgdAUg+CqqKB8QzMle9vn87jtUnL+c3hPbxfAedchUW5ophRnAQAzOxbwCuhE+z96au478NvObFfG676abdEh+OcS2JRSgQTJD0FPBeOnw1MjF9IrjwzV2zm2pcn07d9I+45pY/fJuqc2yNREsHlBB3YX0VwjWAs8Pd4BuVKtzYvn0ufnUB2Zi2ePHcgmRnpiQ7JOZfkotw1lC/pUeAToIjgrqEdcY/M/ciOgiIu/9dE1ubl88plB9Cigbcm6pzbc1EeKDsOmA88TPBA2TxJx0RYr72kTyXNkjRD0tXh9NskLZc0OXwdu6cHkQrMjN+/Pp2vF23gvtP60qddo0SH5JyrIaJUDd0PHGpm8wAkdQXeAd4rZ70C4Doz+0ZSNjBR0kfhvAfN7L6KBp2Knv7fIkZNWMoVh3bjZ96QnHOuEkVJBGuKk0BoAbCmvJXMbCWwMhzOlTQL8HscK2Dstznc+c5Mjty7Jdce0SPR4TjnaphSq4YknSzpZGCGpHclXSDpfOAt4Ovd2YmkTkB/YFw46QpJUyWNkFTiU1CShkuaIGlCTk7O7uyuRlm0dgtXvPANPVpm8+Av+pGW5ncIOecqV1nXCH4WvjKB1cAhfN8cdeRHWCVlAa8C15jZZuAxoCvQj6DEcH9J65nZE2Y2yMwGNW/ePOruapS8/AKGPzeBtDTx5HmDvL9h51xclHpmMbML93TjkjIIksDzZvZauN3VMfOfBN7e0/3URGbGDa9MYd6aPJ69aH9vQ8g5FzdR2hrKBC4m6Lf4u/sVzeyictYT8BQwy8weiJneOrx+APBzYHoF4q7x/v7ZfN6bvopbju3Fgd2bJToc51wNFqWJieeAVsBRwBiCvghyI6w3FDgXOGyXW0X/EvZyNhU4FPhNxUKvuT6dvYb7PpzDif3acMlBnRMdjnOuhotS6dzNzE6TdKKZjZT0AvBBeSuZ2ecETyLv6t3dDTKVLFy7hatemkSvVg24+2RvPsI5F39RSgTFfQ9slLQP0BDoFLeIUlhefgHDn51ArTTxj3MHUre2Nx/hnIu/KCWCJ8JbPG8F3gSygN/HNaoUZGZc//IU5ufk8dzFfnHYOVd1orQ19M9wcCzQJb7hpK7Hxyzg/RnBxeGh3fzisHOu6ngP59XAF/PWcu8HszmuT2u/OOycq3KeCBJs5aZtXPniJLo0z/K+BZxzCeGJIIF2FBTxq+e/YfvOQh4/ZyBZ/uSwcy4BIp15JP2E4E6h75Y3s2fjFFPKuOudmUxaspG/nz2Abi2yEh2Ocy5FRXmy+DmCtoEmA4XhZAM8EeyB1yctZ+SXi7n0oM4cu2/rRIfjnEthUUoEg4C9zcziHUyqmLMql5tfm8bgzk248eieiQ7HOZfiolwjmE7QxISrBJu37+Syf00kO7MWj57Vn1rpfpnGOZdYUUoEzYCZksYD+cUTzeyEuEVVQ5kZN46eypL1W3lp+BBaZHufw865xIuSCG6LdxCpYuQXi75rUXS/Tk0SHY5zzgHRniweI6klsF84abyZldtVpfuhyUs3cte7szi8V0t/aMw5V62UW0Et6XRgPHAacDowTtKp8Q6sJtm4dQe/fv4bWjbI5P7T+vpDY865aiVK1dAtwH7FpQBJzYGPgdHxDKymKCoyrnt5CmtytzP6sp/QsF5GokNyzrkfiHLLStouVUHrIq7ngCf/u4BPZq/hlmN70bd9o0SH45xzPxKlRPC+pA+AF8PxX+Cdy0QyYdF6/vLBHI7dtxXn/6RTosNxzrkSRblYfIOkUwi6nhTwhJn9O+6RJbl1eflc8cIk2jWuy93emJxzrhqL1NaQmb0KvBrnWGqMoiLj2pensH7rDl67/Cc0yPTrAs656qvUun5Jn4d/cyVtjnnlStpcdSEmn39+voAx3+bw++N6sU/bhokOxznnylRqicDMDgz/ZlddOMlv0pIN/OX9ORzduxXnDOmY6HCcc65cUZ4jeC7KtBKWaS/pU0mzJM2QdHU4vYmkjyTNDf82rljo1c+mbTu58sVJtGyQ6Z3MOOeSRpTbQHvHjkiqBQyMsF4BcJ2Z9QKGAL+WtDdwE/CJmXUHPgnHk56Z8bvXprFy03b+emZ/f17AOZc0yrpGcLOkXKBP7PUBYDXwRnkbNrOVZvZNOJwLzALaAicCI8PFRgIn7eExVAsvjF/CO9NWcv2RezGwY40p5DjnUkCpicDM/hxeH7jXzBqEr2wza2pmN+/OTiR1AvoD44CWZrYy3MdKoEWFo68mZq/azB1vzeSg7s345cFdEh2Oc87tllIvFkvqaWazgVckDdh1fvGv/fJIyiK49fQaM9sctd5c0nBgOECHDh0irZMIW3cUcMULk8jOzOCB0/uRlubXBZxzyaWs5wiuJTgR31/CPAMOK2/jkjIIksDzZvZaOHm1pNZmtlJSa6DElkzN7AngCYBBgwZV297Rbn9zJvNz8njuov1pnl0n0eE459xuK+v20eHh30MrsmEFP/2fAmaZ2QMxs94EzgfuDv+We72hunp32kpGTVjK5cO6cmD3ZokOxznnKiTK7aOnScoOh2+V9Jqk/hG2PRQ4FzhM0uTwdSxBAjhC0lzgiHA86azYuI2bXp1K33YNufaIHokOxznnKixKExO/N7NXJB0IHAXcBzwO7F/WSmb2OUHbRCX56W5FWc0UFhnXjJpMYZHx8Bn9yfB+h51zSSzKGaww/Hsc8JiZvQHUjl9I1d9jn81j/ML13H7iPnRqVj/R4Tjn3B6JkgiWS/oHQe9k70qqE3G9GmnSkg08+PFcfta3DacMaJvocJxzbo9FOaGfDnwAHG1mG4EmwA1xjaqayt2+k6tfmkyrBpncedI+3oSEc65GKDcRmNlWYD5wlKQrgBZm9mHcI6uG/vjmDJZt2MrDZ/SjYV1vQsI5VzNEuWvoauB5gieAWwD/knRlvAOrbt6YvJzXvlnOlYd1Z1CnJokOxznnKk2Uu4YuBvY3sy0Aku4BvgQeiWdg1cmyDVu59d/TGdixMVce1i3R4TjnXKWKco1AfH/nEOFwylSOFxYZ1708BQMe+kU/avmtos65GiZKieBpYJyk4n6KTyJ4Yjgl/PO/Cxi3cD33ntqH9k3qJToc55yrdFE6r39A0mfAgQQlgQvNbFK8A6sOZq7YzH0fBr2NnTqwXaLDcc65uCir9dFM4DKgGzAN+LuZFVRVYIm2fWch14yaRKN6tfnTyfv6raLOuRqrrArvkcAggiRwDEHTEinj3g/m8O3qPO49tQ9N6qf0g9TOuRqurKqhvc1sXwBJTwHjqyakxPvfvLU89flCzjugI8P2Svp+c5xzrkxllQh2Fg+kUpXQpq07ue7lKXRpXp+bj+mV6HCccy7uyioR9JW0ORwWUDccF2Bm1iDu0VUxM+OW16exNi+f1877CXVrpyc6JOeci7uyOqZJubPgW1NX8vbUlVx3RA/6tGuU6HCcc65K+NNRodWbt/P716fTr30jLh/WNdHhOOdclfFEQFAldNOrU8kvKOT+0/v608POuZTiZzzg5QlL+XRODjce3ZOuzbMSHY5zzlWplE8ES9dv5Y63ZnJAl6acf0CnRIfjnHNVLqUTQVGRccPoKUji3tP6kJbmTw8751JPSieCZ75YxFcL1vOH4/emXWNvUM45l5pSNhHMz8njnvdnc1jPFpw2yBuUc86lrrglAkkjJK2RND1m2m2SlkuaHL6Ojdf+y1JQWMS1L0+hbu107vYG5ZxzKS6eJYJngKNLmP6gmfULX+/Gcf+l+sfYBUxZupH/O3EfWjTITEQIzjlXbcQtEZjZWGB9vLZfUd+uzuXhj+dy3L6t+VnfNokOxznnEi4R1wiukDQ1rDpqXNpCkoZLmiBpQk5OTqXsuKCwiBtemUJWZi1uP7F3pWzTOeeSXVUngseArkA/YCVwf2kLmtkTZjbIzAY1b968Unb+5H8XMmXZJu44sTfNsupUyjadcy7ZVWkiMLPVZlZoZkXAk8Dgqtr33NW5PPjRtxy7byuO7+NVQs45V6xKE4Gk1jGjPweml7ZsZSooLOL60VOpXyedO07cpyp26ZxzSaPczusrStKLwDCgmaRlwB+BYZL6AQYsAn4Zr/3H+ufnC5mydCOPnNnfq4Scc24XcUsEZnZmCZOfitf+SjNvTS4PfPQtR/duxfF9Wpe/gnPOpZga/WRxQWER170ylXq10/m/k/bxB8ecc64EcSsRVAdPhVVCD5/Rj+bZXiXknHMlqdElghYN6nDawHac4A+OOedcqWp0ieDn/dvx8/7eoJxzzpWlRpcInHPOlc8TgXPOpThPBM45l+I8ETjnXIrzROCccynOE4FzzqU4TwTOOZfiPBE451yKk5klOoZyScoBFldw9WbA2koMJ5H8WKqfmnIc4MdSXe3JsXQ0s3J79kqKRLAnJE0ws0GJjqMy+LFUPzXlOMCPpbqqimPxqiHnnEtxngiccy7FpUIieCLRAVQiP5bqp6YcB/ixVFdxP5Yaf43AOedc2VKhROCcc64Mngiccy7F1ZhEIOloSXMkzZN0UwnzL5CUI2ly+LokEXGWR9IISWskTS9lviT9NTzOqZIGVHWMUUU4lmGSNsV8Jn+o6hijkNRe0qeSZkmaIenqEpZJis8l4rEky+eSKWm8pCnhsdxewjJ1JI0KP5dxkjpVfaRli3gc8T1/mVnSv4B0YD7QBagNTAH23mWZC4BHEx1rhGM5GBgATC9l/rHAe4CAIcC4RMe8B8cyDHg70XFGOI7WwIBwOBv4toTvV1J8LhGPJVk+FwFZ4XAGMA4YsssyvwIeD4fPAEYlOu4KHkdcz181pUQwGJhnZgvMbAfwEnBigmOqEDMbC6wvY5ETgWct8BXQSFLrqolu90Q4lqRgZivN7JtwOBeYBbTdZbGk+FwiHktSCN/rvHA0I3ztevfLicDIcHg08FNJqqIQI4l4HHFVUxJBW2BpzPgySv5ynxIW20dLal81oVW6qMeaLA4Ii8TvSeqd6GDKE1Yt9Cf41RYr6T6XMo4FkuRzkZQuaTKwBvjIzEr9XMysANgENK3aKMsX4TggjuevmpIISsrwu2bUt4BOZtYH+JjvfyUkmyjHmiy+IWgLpS/wCPB6guMpk6Qs4FXgGjPbvOvsElaptp9LOceSNJ+LmRWaWT+gHTBY0j67LJIUn0uE44jr+aumJIJlQGyGbAesiF3AzNaZWX44+iQwsIpiq2zlHmuyMLPNxUViM3sXyJDULMFhlUhSBsGJ83kze62ERZLmcynvWJLpcylmZhuBz4Cjd5n13eciqRbQkGpcXVnaccT7/FVTEsHXQHdJnSXVJrgo9GbsArvU155AUDeajN4EzgvvUhkCbDKzlYkOqiIktSqur5U0mOD7uC6xUf1YGONTwCwze6CUxZLic4lyLEn0uTSX1CgcrgscDszeZbE3gfPD4VOB/1h49bW6iHIc8T5/1arMjSWKmRVIugL4gOAOohFmNkPSHcAEM3sTuErSCUABwS+CCxIWcBkkvUhw10YzScuAPxJcPMLMHgfeJbhDZR6wFbgwMZGWL8KxnApcLqkA2AacUd3+SUNDgXOBaWE9LsDvgA6QdJ9LlGNJls+lNTBSUjpBsnrZzN7e5f/+KeA5SfMI/u/PSFy4pYpyHHE9f3kTE845l+JqStWQc865CvJE4JxzKc4TgXPOpThPBM45l+I8ETjnXIrzROCSgqSmMS0vrpK0PGb8izjts7+kf8Zj2xUh6RlJp5Yx/wpJ1fW2VVeN1YjnCFzNZ2brgH4Akm4D8szsvjjv9nfAnXHeR2UaAfwPeDrRgbjk4iUCl/Qk5YV/h0kaI+llSd9KulvS2WFb79MkdQ2Xay7pVUlfh6+hJWwzG+hjZlPC8UNiSiCTwvlIuiHcxlTFtCMv6bxw2hRJz4XTOkr6JJz+iaQO4fRnFPRl8IWkBcW/+sOnlB+VNFPSO0CLmO3fHU6fKuk+ADPbCiwKnwZ2LjIvEbiapi/Qi+DpywXAP81ssIIOWK4ErgEeBh40s8/Dk/EH4TqxBgGxHepcD/zazP6noMG27ZKOBLoTNIMu4E1JBxM0x3ALMNTM1kpqEm7jUYKmqkdKugj4K3BSOK81cCDQk6BZhNHAz4G9gH2BlsBMYES4vZ8DPc3MipsnCE0ADgLGV+TNc6nJE4Grab4ubuNH0nzgw3D6NODQcPhwYG993yx9A0nZYfv8xVoDOTHj/wMekPQ88JqZLQsTwZHApHCZLILE0BcYbWZrAcysuJGzA4CTw+HngL/EbP91MysCZkpqGU47GHjRzAqBFZL+E07fDGwH/hmWFN6O2c4agmTiXGReNeRqmvyY4aKY8SK+/+GTBhxgZv3CV9tdkgAEbexkFo+Y2d3AJUBd4CtJPQlKAX+O2U43M3sqnB6l7ZbYZWLjVinLFMdSQFAKeZWgRPF+zOzMMHbnIvNE4FLRh8AVxSOS+pWwzCygW8wyXc1smpndQ1D90pOgSumisKoISW0ltQA+AU6X1DScXlw19AXfN3p2NvB5OXGOBc5Q0GlJa8ISTbi/hmET0dcQXkQP9eCHVVrOlcurhlwqugr4m6SpBP8DY4HLYhcws9mSGsZUGV0j6VCgkKCu/j0zy5fUC/gyrGbKA84JW769CxgjqZCg6uiCcL8jJN1AUO1U3q2e/wYOI6jW+hYYE07PBt6QlElQevhNzDpDgR91fu5cWbz1UedKIek3QK6ZVZtnCcoiqT9wrZmdm+hYXHLxqiHnSvcYP6y7r+6aAb9PdBAu+XiJwDnnUpyXCJxzLsV5InDOuRTnicA551KcJwLnnEtxngiccy7F/T+AAjuWBbiVCAAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "DELTA_T = 3.0\n",
    "\n",
    "# you don't need to touch the code below\n",
    "\n",
    "t_min = 2 - (DELTA_T / 2)\n",
    "t_max = 2 + (DELTA_T / 2)\n",
    "\n",
    "plt.title(\"Position vs Time for ball thrown upwards\")\n",
    "plt.ylabel(\"Position above ground (meters)\")\n",
    "plt.xlabel(\"Time (seconds)\")\n",
    "plot_continuous_function(position_b, t_min, t_max)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "尝试一下，当`DELTA_T = 0.06`时，图形如下所示：\n",
    "\n",
    "![](https://s3.cn-north-1.amazonaws.com.cn/u-img/linearized.png)\n",
    "\n",
    "在我看来，它已经非常直了。由于我们放大了很多，所以这个图形看起来像一条直线。\n",
    "\n",
    "该曲线的切线在t = 2时的斜率将会非常接近*该直线的* 线性近似斜率。\n",
    "\n",
    "那么这条线的斜率是多少呢？\n",
    "\n",
    "$$\\text{slope}=\\frac{\\text{vertical change in graph}}{\\text{horizontal change in graph}}$$\n",
    "\n",
    "或者，另一种表示方法是：\n",
    "\n",
    "$$\\text{slope}=\\frac{\\Delta z}{\\Delta t}$$\n",
    "\n",
    "**垂直变化**\n",
    "\n",
    "该位置在开始时的值约为**40.08**（不到40.1），最后升至约**40.71**。所以垂直变化是\n",
    "\n",
    "$$\\Delta z = 40.71 - 40.08 = 0.63 \\text{ meters}$$ \n",
    "\n",
    "**水平变化**\n",
    "\n",
    "水平变化就是 $\\Delta t$，在这个示例中是0.06秒。\n",
    "\n",
    "**斜率**\n",
    "\n",
    "$$\\text{slope} = \\frac{0.63 \\text{ meters}}{0.06 \\text{ seconds}} = 10.5 \\text{ meters per second}$$\n",
    "\n",
    "----\n",
    "\n",
    "## 4 - 通过算法发现*特定点* 的导数\n",
    "\n",
    "我们为什么一定要通过查看图表来计算垂直变化呢？下面，让我们以数字方式获得确切的变化值。\n",
    "\n",
    "图表放大后的位置变化（其显示从 $t = 1.97$到 $t = 2.03$ 的值）在数学上表示如下：\n",
    "\n",
    "$$\\Delta z = f(2.03) - f(1.97)$$\n",
    "\n",
    "我们也可以用代码来计算它！"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "the graph goes from 40.08359 at t=1.97\n",
      "to 40.707589999999996 at t=2.03\n",
      "which is a delta z of 0.6239999999999952\n",
      "\n",
      "This gives a slope of 10.39999999999992\n"
     ]
    }
   ],
   "source": [
    "DELTA_Z = position_b(2.03) - position_b(1.97)\n",
    "DELTA_T = 0.06\n",
    "SLOPE = DELTA_Z / DELTA_T\n",
    "\n",
    "print(\"the graph goes from\", position_b(1.97), \"at t=1.97\")\n",
    "print(\"to\", position_b(2.03), \"at t=2.03\")\n",
    "print(\"which is a delta z of\", DELTA_Z)\n",
    "print()\n",
    "print(\"This gives a slope of\", SLOPE)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "使用函数的**精确**值，可以为我们提供一个更精确的斜率值（以及球的速度）。但现在，看起来我们已经给出了问题的答案：\n",
    "\n",
    "> t = 2时，球的速度为**10.4 米/秒**\n",
    "\n",
    "#### 练习 ： t = 3.45时，找到球的速度\n",
    "\n",
    "使用类似于我们在$t=2$所做的一系列步骤，找到$t=3.45$时球的速度"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [],
   "source": [
    "# Your code here!\n",
    "\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "#\n",
    "\n",
    "#\n",
    "\n",
    "#\n",
    "\n",
    "# Spoiler alert! Solution below!\n",
    "\n",
    "#\n",
    "\n",
    "#\n",
    "\n",
    "#\n",
    "\n",
    "#"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "speed is -3.810000000000713 m/s at t = 3.45\n"
     ]
    }
   ],
   "source": [
    "# SOLUTION - FIRST ATTEMPT\n",
    "\n",
    "# 1. set some relevant parameters\n",
    "TIME    = 3.45\n",
    "DELTA_T = 0.02\n",
    "\n",
    "# 2. The \"window\" should extend 0.01 to the left and \n",
    "#    0.01 to the right of the target TIME\n",
    "t_min = TIME - (DELTA_T / 2)\n",
    "t_max = TIME + (DELTA_T / 2)\n",
    "\n",
    "# 3. calculate the value of the function at the left and\n",
    "#    right edges of our \"window\"\n",
    "z_at_t_min = position_b(t_min)\n",
    "z_at_t_max = position_b(t_max)\n",
    "\n",
    "# 4. calculate vertical change\n",
    "delta_z = z_at_t_max - z_at_t_min\n",
    "\n",
    "# 5. calculate slope\n",
    "slope = delta_z / DELTA_T\n",
    "\n",
    "print(\"speed is\",slope, \"m/s at t =\", TIME)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "你可以在上面看到我的解决方案。该代码*近似于* 时间在$t=3.45$时，position_b函数的导数。\n",
    "\n",
    "通过一些修改，我们可以将它变成一个函数，使其近似于**任何**一个函数在**任何**时间点的导数！"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "The derivative at t = 3.45 is -3.8100489987868964\n"
     ]
    }
   ],
   "source": [
    "# SOLUTION - second (better) version\n",
    "def approximate_derivative(f, t):\n",
    "    # 1. Set delta_t. Note that I've made it REALLY small.\n",
    "    delta_t = 0.00001\n",
    "    \n",
    "    # 2. calculate the vertical change of the function\n",
    "    #    NOTE that the \"window\" is not centered on our \n",
    "    #    target time anymore. This shouldn't be a problem\n",
    "    #    if delta_t is small enough.\n",
    "    vertical_change = f(t + delta_t) - f(t)\n",
    "    \n",
    "    # 3. return the slope\n",
    "    return vertical_change / delta_t\n",
    "\n",
    "deriv_at_3_point_45 = approximate_derivative(position_b, 3.45)\n",
    "print(\"The derivative at t = 3.45 is\", deriv_at_3_point_45)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "让我们将上面函数中的代码与导数的数学定义联系起来...\n",
    "\n",
    ">  **$f(t)$ 在 t 处的导数**是函数$\\dot{f}(t)$，并被定义为\n",
    "\n",
    "> $$\\dot{f}(t) = \\lim_{\\Delta t \\to 0} \\frac{f(t+\\Delta t) - f(t)}{\\Delta t}$$\n",
    "\n",
    "1. 正如你所看到的，我使`delta_t`非常小（0.00001），以便接近“ $\\Delta t$ 趋近于0”的极限。但是，为什么不设置`delta_t = 0.0` 呢？大胆尝试吧！在上面的函数中尝试它。看看当你试图运行它时，会发生什么:)\n",
    "\n",
    "2. 函数在时间`t`处的垂直变化的计算方式与数学定义所规定的完全相同。\n",
    "\n",
    "3. 斜率计算也相同。\n",
    "\n",
    "----\n",
    "\n",
    "## 5 - 可选：找到“完整的”导数\n",
    "\n",
    "`approximate_derivative`函数非常好用，因为它适用于任何一个函数的任意一点。但是我想知道任意一个函数在**每**一点的导数。\n",
    "\n",
    "> 目标 - 我需要一个函数，它会将一个连续函数作为输入，然后生成另一个连续函数，并将其作为输出。输出函数应该是输入函数的导数。"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "# These four lines of code do exactly what we wanted!\n",
    "# There is a good chance that this will be the \n",
    "# hardest-to-understand code you see in this whole \n",
    "# Nanodegree, so don't worry if you're confused. \n",
    "\n",
    "def get_derivative(f):\n",
    "    def f_dot(t):\n",
    "        return approximate_derivative(f,t)\n",
    "    return f_dot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "阅读并运行上面的代码之后，尝试运行下面的代码单元格，了解为什么这个函数如此有用..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot 1 - a reminder of what our position function looks like.\n",
    "#         Remember, this is a plot of vertical POSITION vs TIME\n",
    "#         for a ball that was thrown upwards.\n",
    "\n",
    "plt.title(\"Position vs Time for ball thrown upwards\")\n",
    "plt.ylabel(\"Position above ground (meters)\")\n",
    "plt.xlabel(\"Time (seconds)\")\n",
    "plot_continuous_function(position_b, 0, 6.12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot 2 - a plot of VELOCITY vs TIME for the same ball! Note \n",
    "#    how the ball begins with a large positive velocity (since\n",
    "#    it's moving upwards) and ends with a large negative \n",
    "#    velocity (downwards motion right before it hits the ground)\n",
    "\n",
    "velocity_b = get_derivative(position_b)\n",
    "plot_continuous_function(velocity_b, 0, 6.12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot 3 - a plot of ACCELERATION vs TIME for the same ball.\n",
    "#    Note that the acceleration is a constant value \n",
    "#    of -9.8 m/s/s. That's because gravity always causes \n",
    "#    objects to accelerate DOWNWARDS at that rate.\n",
    "\n",
    "acceleration_b = get_derivative(velocity_b)\n",
    "plt.ylim([-11, -9])\n",
    "plot_continuous_function(acceleration_b, 0, 6.12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 432x288 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "# plot 4 - All 3 plots at once!\n",
    "plot_continuous_function(position_b, 0, 6.12)\n",
    "plot_continuous_function(velocity_b, 0, 6.12)\n",
    "plot_continuous_function(acceleration_b, 0, 6.12)\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "现在你已经看到了`get_derivative`可以帮我们做什么，下面就让我们试着了解它是如何工作的..."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_derivative(f):\n",
    "    def f_dot(t):\n",
    "        return approximate_derivative(f,t)\n",
    "    return f_dot"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "我们一行一行地向下看。\n",
    "\n",
    "1. `def get_derivative(f):` 这里需要注意的重要一点是，这个函数只需要一个输入，而这个输入是一个函数`f`。\n",
    "\n",
    "2. `def f_dot(t):` 这里，我们在`get_derivative` 里面定义了一个新的函数。并且请注意，这个函数只需要一个输入`t`。\n",
    "\n",
    "3. `return approximate_derivative(f,t)` 在这里，我们定义`f_dot`**在被时间 `t` 调用时** 的行为。我们想要做的是近似于函数`f` 在时间`t` 处的导数。\n",
    "\n",
    "4. `return f_dot` 在这里，我们返回的是我们刚刚定义的函数！你觉得很奇怪吧，但如果仔细想一想就合理了。现在，如果思考一下`get_derivative`函数的全局作用，就是这样：将一个函数作为输入，然后产生另一个函数（即导数），并将其作为输出。"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
